アロー関数 arrow function
何が嬉しいの?利点は?
this Javascriptの参照先が変わらない。
解決した課題
JavaScriptでは、thisが参照するものが実行箇所によって異なる
関数 函数 functionを簡略化可能
特徴
名前を付けることができない(常に匿名関数)
this Javascriptの参照先が変わらない。
関数 函数 functionキーワードに比べて短く書くことができる
newできない(コンストラクタ関数ではない)
変数 Argumentsを参照できない
用途
class クラスのメンバー変数をメソッド Method内やイベントリスナー内で参照したいときに使う
コールバック関数 callback書くときに楽
code:arrow-function-this.js
class LikeCounter {
constructor(){
//thisは、親のclassオブジェクト LikeCounter
this.clickedCounter=0;
const button=document.querySelector('.button');
const clickedCountText=document.querySelector('.clickedCountText')
//not arrow
button.addEventListener('click',function(){
this.clickedCount+=1; //正しく動作しない NaN
clickedCountText.textContent=this.clickedCount;
});
//arrow
button.addEventListener('click',()=>{
this.clickedCount+=1; // LikeCounter.clickedCount
clickedCountText.textContent=this.clickedCount;
});
}
}
new LikeCounter();
参考
The Simple Rules to ‘this’ in Javascript | by Arnav Aggarwal | codeburst
this Javascriptの詳しい説明読むなら、この記事
アロー関数 - JavaScript | MDN
関数と宣言 · JavaScript Primer #jsprimer